1. Field of the Invention
The present invention relates generally to video file servers and more particularly to a video file server providing “video on demand” (VOD) service. In particular, the present invention relates to management of cache memory and bandwidth resources in such a video file server.
2. Description of the Related Art
To provide “video on demand” (VOD) service, a multiplicity of digitally-encoded movies are stored in an array of disk drives, and the disk drives are coupled to a data network for delivery of the movies to network clients for viewing. It is desired to permit each client to select any one of the movies in the disk storage for viewing at any time, and to give the client “video cassette recorder” (VCR) functionality permitting the client to pause and fast-forward or fast-reverse to any location in the movie while viewing the movie.
Video file servers are typically constructed using disk drives, network interfaces, and other components that have been designed and manufactured for general data storage and network computing applications. For example, one architecture for a video file server includes a cross-bar switch to couple an array of conventional disk drives to an array of network interface circuits. In this architecture, it is possible for any network client communicating with any one of the network interface circuits to access any movie in any one of the disk drives. This architecture, however, has a disk drive bandwidth limitation preventing more than a certain number of independent real-time video streams to issue from any one of the disk drives. This bandwidth limitation is problematic for providing video-on-demand service for the more popular movies. The bandwidth limitation can be overcome by storing a complete copy of each of the more popular movies in more than one of the disk drives, but such a solution is very costly. A more economical solution is to deny VCR functionality for the most popular movies, and instead offer the most popular movies starting at various increments of time and continuing without interruption. For example, if each disk drive has sufficient bandwidth to supply eight concurrent-time video streams, then it is possible for the one disk drive containing only one two-hour movie to permit any client to begin viewing at the start of the movie every fifteen minutes. Each of the eight video streams could be simulcast to any number of the clients that could be serviced concurrently by all of the network interface circuits.
Another architecture for a video file server is a hierarchical architecture that uses a cached disk storage system and network interface circuits in a multiplicity of commodity computers. The cached disk storage system includes a primary cache memory, and each commodity computer includes a local secondary cache memory. Each cache memory provides a much higher available bandwidth than a single disk drive. Therefore, it is possible to store an entire movie in cache memory to provide the network clients with VOD and VCR access to the movie. An example of such a hierarchical video file server is described in Duso et al. U.S. Pat. No. 5,892,915 issued Apr. 6, 1999, incorporated herein by reference. Such a video file server is manufactured and sold by EMC Corporation, 35 Parkwood Drive, Hopkinton, Mass. 01748.
Although Duso et al. U.S. Pat. No. 5,892,915 teaches how to make a video file server that can provide VOD and VCR access to the most popular movies and also unpopular movies, there is a need for more efficient management of access to popular movies that are not sufficiently popular to always keep them in cache memory. Moreover, the popularity of a movie will change with time, and therefore it is desired for the video file server to manage cache memory and bandwidth in accordance with the changing popularity of the movie.